Network management software must manage a range of network devices, or elements. These network devices are typically complex systems with storage, embedded processors, and their own software. To add further complexity, there can be several versions of each network element, each with its own features and capabilities requiring management. In a network management application with a broad range of network elements supported, there may be hundreds of new network elements, or network element versions, added every year. It quickly becomes unmanageable to update such network management software with the release of each new network element, or network element version. Operating a new device under a network management system that does not fully support it can result in either catastrophic failure affecting management of all network elements, such as a core dump, or inaccurate results.
One solution to this problem is to release numerous upgrades, or versions, of the network management software. Such frequent releases impose high costs on both the vendor and the customer. A less desirable solution is to release fewer versions of the network management software. This delays support for new devices or device versions. This solution reduces the costs to the vendor and customer, but may result in lost device and network management sales. A further solution is to provide frequent software patches for the network management software to add the desired device support. This solution still results in high development cost to the vendor, and maintenance costs to the customer. A further drawback of any solution that involves frequent upgrades or patches is the requirement for testing and verification before deployment. Testing each release of management software is particularly difficult as it must be tested against several releases of each network element—often resulting in hundreds of combinations to test. Testing is expensive and time-consuming, and inadequate testing can lead to undetected bugs, or defects, in a new release.
Some network management systems implement negotiated version interfaces, or protocol negotiation, to overcome the need for constant upgrades or patches. Such negotiations involve communication between the network management system and the network element using a defined interface that includes version information. The management system and the network element negotiate to establish the highest version of the interface that both understand. A disadvantage of protocol negotiation is that it does not permit the implementation of features that both the new element and the network management system can both support if they are not supported by the highest common interface version. Thus, the optimum support for a new device is not achieved. Protocol negotiation can reduce the frequency of updates required to the network management software, but it has the disadvantage that it does not reduce the requirement to test the management software against each network element version.
Data driven interfaces and self-describing devices are also known. Data driven interfaces allow the new network element to describe itself rather than having the network management system store hard-coded knowledge of the device. Often this permits the management system to support a new or updated network element without modifications. However, features that the self-describing device describes that are not supported by the network management system are not activated. Such devices also run the risk of activating an incorrect version of a feature when they are not aware of a particular version of the network management system, which can have catastrophic results. Again, self-describing interfaces reduce the frequency of updates required to network management software, but do not reduce the requirement to test the management software against each network element version.
It is, therefore, desirable to provide a method and system that permits backward and forward compatibility in a network management software application program without requiring frequent upgrades or patches, and without requiring extensive testing, while providing support for new network elements and new device versions.